// pages/testmode/testmode.js
import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    List: [],
    index: 0,
    Options: [], //ABCD
    result: [], //被选中的选项
    time: '02:00', //倒计时
    value: 100,
    timeSum: 120,
    clearTime: function () {},
    gradientColor: {
      '0%': '#ffd01e',
      '100%': '#ee0a24',
    },
    resultArr: {},
    isShow: false,
    answerArr: [] //处理答案
  },

  getTestList() {
    wx.request({
      url: 'http://192.168.3.13:3001/questions/randList',
      data: {},
      success: (res) => {
        let arr = res.data.data.map(item => { //遍历data  给data里加一个type属性
          return {
            ...item,
            type: 'warning'
          }
        })
        this.setData({
          List: arr,
          Options: JSON.parse(res.data.data[this.data.index].options),
          answerArr: JSON.parse(res.data.data[this.data.index].answers),
        })
        console.log(this.data.List);
      }
    })
  },
  onChange(event) { //选择按钮事件
    console.log(event.detail);
    this.setData({
      result: event.detail,
    });
  },
  LastQuestion() { //上一题
    if (this.data.index == 0) { //判断是否为第一道题
      Dialog.alert({
        title: '温馨提示',
        message: '已经是第一道题啦',
      }).then(() => {});
      return
    }
    this.setData({
      index: this.data.index - 1,
      Options: JSON.parse(this.data.List[this.data.index - 1].options),
      result: this.data.resultArr[this.data.index].split('') //获取上一题的答案
    })
  },

  NextQuestion() { //下一题
    if (this.data.index == this.data.List.length - 1) { //判断是否为最后一道题
      Dialog.alert({
        title: '温馨提示',
        message: '已经是最后一道题啦',
      }).then(() => {});
      return
    }

    this.setData({ //展示下一题数据
      index: this.data.index + 1,
      Options: JSON.parse(this.data.List[this.data.index + 1].options),
      answerArr: JSON.parse(this.data.list[this.data.index + 1].answers) //下一题的答案
    })



    if (this.data.resultArr[this.data.index + 1]) { //判断Arr某一项是否存在
      this.data.resultArr[this.data.index] = this.data.result.sort().join('') //继续赋值
      this.setData({ //点击下一题 获取当前索引的答案并赋值
        result: this.data.resultArr[this.data.index + 1].split(''),
      })
    } else {
      this.data.resultArr[this.data.index] = this.data.result.sort().join('')
      this.setData({
        result: [] //清空原答案
      })
    }


    /////////////////////
    if (this.data.resultArr[this.data.index ] == this.data.answerArr.sort().join("")) { //判断选中的答案==当前题的答案
      this.data.list[this.data.index].type = 'success' //对了success
    } else {
      this.data.list[this.data.index].type = 'danger ' //错了danger
    }
    this.setData({
      list: this.data.list //判断完给list重新赋值
    })
    console.log(this.data.resultArr);
  },

  start() { //倒计时
    let s = this.data.timeSum; //总数
    this.data.clearTime = setInterval(() => {
      let seconds = this.data.timeSum - 1;
      let time = `${ Math.floor (seconds/60) < 10 ? '0' + Math.floor (seconds/60):Math.floor (seconds/60) }  : ${ seconds % 60 < 10? '0' + seconds % 60 : seconds % 60}`;
      this.setData({
        value: Math.round((seconds / s) * 100),
        time,
        timeSum: seconds
      })
      if (seconds == 0) {
        clearInterval(this.data.clearTime);
        Dialog.alert({
          title: '温馨提示',
          message: '时间到了,快交卷哦！！！',
        }).then(() => {});
      }
    }, 1000)
  },

  anSwerData() { //打开弹出框
    this.setData({
      isShow: true
    })
  },
  onClose() { //关闭弹出框
    this.setData({
      isShow: false
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    this.getTestList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    this.start();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearInterval(this.data.clearTime);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})